package com.ybg.oss;
import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.Range;
import org.hibernate.validator.constraints.URL;
import com.ybg.oss.validator.group.AliyunGroup;
import com.ybg.oss.validator.group.QcloudGroup;
import com.ybg.oss.validator.group.QiniuGroup;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/** 云存储配置信息
 * 
 * @author chenshun
 * @email sunlightcs@gmail.com
 * @date 2017-03-25 16:12 */
public class CloudStorageConfig implements Serializable {
	
	private static final long	serialVersionUID	= 1L;
	/** 类型 1：七牛 2：阿里云 3：腾讯云 **/
	@Range(min = 1, max = 3, message = "类型错误")
	private Integer				type;
	/** 七牛绑定的域名 **/
	@NotBlank(message = "七牛绑定的域名不能为空", groups = QiniuGroup.class)
	@URL(message = "七牛绑定的域名格式不正确", groups = QiniuGroup.class)
	private String				qiniuDomain;
	/** 七牛路径前缀 */
	private String				qiniuPrefix;
	/** 七牛ACCESS_KEY **/
	@NotBlank(message = "七牛AccessKey不能为空", groups = QiniuGroup.class)
	private String				qiniuAccessKey;
	/** 七牛SECRET_KEY **/
	@NotBlank(message = "七牛SecretKey不能为空", groups = QiniuGroup.class)
	private String				qiniuSecretKey;
	/** 七牛存储空间名 **/
	@NotBlank(message = "七牛空间名不能为空", groups = QiniuGroup.class)
	private String				qiniuBucketName;
	/** 阿里云绑定的域名 */
	@NotBlank(message = "阿里云绑定的域名不能为空", groups = AliyunGroup.class)
	@URL(message = "阿里云绑定的域名格式不正确", groups = AliyunGroup.class)
	private String				aliyunDomain;
	/** 阿里云路径前缀 */
	private String				aliyunPrefix;
	/** 阿里云EndPoint */
	@NotBlank(message = "阿里云EndPoint不能为空", groups = AliyunGroup.class)
	private String				aliyunEndPoint;
	/** 阿里云AccessKeyId */
	@NotBlank(message = "阿里云AccessKeyId不能为空", groups = AliyunGroup.class)
	private String				aliyunAccessKeyId;
	/** 阿里云AccessKeySecret */
	@NotBlank(message = "阿里云AccessKeySecret不能为空", groups = AliyunGroup.class)
	private String				aliyunAccessKeySecret;
	/** 阿里云BucketName */
	@NotBlank(message = "阿里云BucketName不能为空", groups = AliyunGroup.class)
	private String				aliyunBucketName;
	/** 腾讯云绑定的域名 */
	@NotBlank(message = "腾讯云绑定的域名不能为空", groups = QcloudGroup.class)
	@URL(message = "腾讯云绑定的域名格式不正确", groups = QcloudGroup.class)
	private String				qcloudDomain;
	/** 腾讯云路径前缀 */
	private String				qcloudPrefix;
	/** 腾讯云AppId */
	@NotNull(message = "腾讯云AppId不能为空", groups = QcloudGroup.class)
	private Integer				qcloudAppId;
	/** 腾讯云SecretId */
	@NotBlank(message = "腾讯云SecretId不能为空", groups = QcloudGroup.class)
	private String				qcloudSecretId;
	/** 腾讯云SecretKey */
	@NotBlank(message = "腾讯云SecretKey不能为空", groups = QcloudGroup.class)
	private String				qcloudSecretKey;
	/** 腾讯云BucketName */
	@NotBlank(message = "腾讯云BucketName不能为空", groups = QcloudGroup.class)
	private String				qcloudBucketName;
	/** 腾讯云COS所属地区 */
	@NotBlank(message = "所属地区不能为空", groups = QcloudGroup.class)
	private String				qcloudRegion;
	
	public Integer getType() {
		return type;
	}
	
	public void setType(Integer type) {
		this.type = type;
	}
	
	public String getQiniuDomain() {
		return qiniuDomain;
	}
	
	public void setQiniuDomain(String qiniuDomain) {
		this.qiniuDomain = qiniuDomain;
	}
	
	public String getQiniuAccessKey() {
		return qiniuAccessKey;
	}
	
	public void setQiniuAccessKey(String qiniuAccessKey) {
		this.qiniuAccessKey = qiniuAccessKey;
	}
	
	public String getQiniuSecretKey() {
		return qiniuSecretKey;
	}
	
	public void setQiniuSecretKey(String qiniuSecretKey) {
		this.qiniuSecretKey = qiniuSecretKey;
	}
	
	public String getQiniuBucketName() {
		return qiniuBucketName;
	}
	
	public void setQiniuBucketName(String qiniuBucketName) {
		this.qiniuBucketName = qiniuBucketName;
	}
	
	public String getQiniuPrefix() {
		return qiniuPrefix;
	}
	
	public void setQiniuPrefix(String qiniuPrefix) {
		this.qiniuPrefix = qiniuPrefix;
	}
	
	public String getAliyunDomain() {
		return aliyunDomain;
	}
	
	public void setAliyunDomain(String aliyunDomain) {
		this.aliyunDomain = aliyunDomain;
	}
	
	public String getAliyunPrefix() {
		return aliyunPrefix;
	}
	
	public void setAliyunPrefix(String aliyunPrefix) {
		this.aliyunPrefix = aliyunPrefix;
	}
	
	public String getAliyunEndPoint() {
		return aliyunEndPoint;
	}
	
	public void setAliyunEndPoint(String aliyunEndPoint) {
		this.aliyunEndPoint = aliyunEndPoint;
	}
	
	public String getAliyunAccessKeyId() {
		return aliyunAccessKeyId;
	}
	
	public void setAliyunAccessKeyId(String aliyunAccessKeyId) {
		this.aliyunAccessKeyId = aliyunAccessKeyId;
	}
	
	public String getAliyunAccessKeySecret() {
		return aliyunAccessKeySecret;
	}
	
	public void setAliyunAccessKeySecret(String aliyunAccessKeySecret) {
		this.aliyunAccessKeySecret = aliyunAccessKeySecret;
	}
	
	public String getAliyunBucketName() {
		return aliyunBucketName;
	}
	
	public void setAliyunBucketName(String aliyunBucketName) {
		this.aliyunBucketName = aliyunBucketName;
	}
	
	public String getQcloudDomain() {
		return qcloudDomain;
	}
	
	public void setQcloudDomain(String qcloudDomain) {
		this.qcloudDomain = qcloudDomain;
	}
	
	public String getQcloudPrefix() {
		return qcloudPrefix;
	}
	
	public void setQcloudPrefix(String qcloudPrefix) {
		this.qcloudPrefix = qcloudPrefix;
	}
	
	public Integer getQcloudAppId() {
		return qcloudAppId;
	}
	
	public void setQcloudAppId(Integer qcloudAppId) {
		this.qcloudAppId = qcloudAppId;
	}
	
	public String getQcloudSecretId() {
		return qcloudSecretId;
	}
	
	public void setQcloudSecretId(String qcloudSecretId) {
		this.qcloudSecretId = qcloudSecretId;
	}
	
	public String getQcloudSecretKey() {
		return qcloudSecretKey;
	}
	
	public void setQcloudSecretKey(String qcloudSecretKey) {
		this.qcloudSecretKey = qcloudSecretKey;
	}
	
	public String getQcloudBucketName() {
		return qcloudBucketName;
	}
	
	public void setQcloudBucketName(String qcloudBucketName) {
		this.qcloudBucketName = qcloudBucketName;
	}
	
	public String getQcloudRegion() {
		return qcloudRegion;
	}
	
	public void setQcloudRegion(String qcloudRegion) {
		this.qcloudRegion = qcloudRegion;
	}
}
